/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entidades;

import bl.ContrasteBL;
import bl.MedidorBL;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author RENZO
 */
public class Medidor implements IEntidad,Serializable {

    private long id;
    private ModeloMedidor modelo;
    private Cliente cliente;
    private String suministro;
    private short tipo;
    private Date fechaContraste;
    private short estado;
    private String serie;
    private String año;
    private Contraste contraste;

    public Medidor() {
    }

    public Medidor(long id, ModeloMedidor modelo, Cliente cliente, String suministro, short tipo, Date fechaContraste, short estado, String serie, String año) {
        this.id = id;
        this.modelo = modelo;
        this.cliente = cliente;
        this.suministro = suministro;
        this.tipo = tipo;
        this.fechaContraste = fechaContraste;
        this.estado = estado;
        this.serie = serie;
        this.año = año;
    }

    public Contraste getContraste() {
        return contraste;
    }

    public void setContraste(Contraste contraste) {
        this.contraste = contraste;
    }

    public String getAño() {
        return año;
    }

    public void setAño(String año) {
        this.año = año;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }
    
    public short getEstado() {
        return estado;
    }

    public void setEstado(short estado) {
        this.estado = estado;
    }

    public Date getFechaContraste() {
        return fechaContraste;
    }

    public void setFechaContraste(Date fechaContraste) {
        this.fechaContraste = fechaContraste;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public ModeloMedidor getModelo() {
        return modelo;
    }

    public void setModelo(ModeloMedidor modelo) {
        this.modelo = modelo;
    }

    public String getSerie() {
        return serie;
    }

    public void setSerie(String serie) {
        this.serie = serie;
    }

    public String getSuministro() {
        return suministro;
    }

    public void setSuministro(String suministro) {
        this.suministro = suministro;
    }

    public short getTipo() {
        return tipo;
    }

    public void setTipo(short tipo) {
        this.tipo = tipo;
    }

    @Override
    public Boolean save() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Object getEntity(long id) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Object getEntity(long id, List<JoinObject> joinObjects) {
        Medidor medidor = new Medidor();
        
        return medidor;
    }
    
    public Medidor obtenerMedidorByContraste(long contrasteId){
        Medidor med = new Medidor();
        med = MedidorBL.getMedidorByContraste(contrasteId);
        this.setId(med.getId());
        this.setContraste(med.getContraste());
        return med;
    }

    @Override
    public List<Object> getAll() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public List<Object> getAll(List<JoinObject> joinObjects) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    public Boolean registrarResultadosContraste(long userId){
        return ContrasteBL.registrarContraste(this, userId);
    }
    
    public static List<Medidor> getMedidorBySuministro(String suministro){
        List<Medidor> listaMedidores = new ArrayList<Medidor>();
        listaMedidores = MedidorBL.getMedidorBySuministro(suministro);
        return listaMedidores;
    }
}
